perm filename MOVE.OLD[XX,LCS]1 blob sn#206581 filedate 1976-05-31 generic text, type T, neo UTF8
00100		TITLE	MOVE
00200		ENTRY	GETPTS,MOVIT,OUTLIM,COPYIT,UPDN,STFCH,DELETE,NOIR
00300		ENTRY SLEND,POSIT
00400		EXTERNAL LOOP,RTLINE,DL,DPY,DPYNEW,.COMM.,XRN,KJY,PTR,POSI
00500		EXTERNAL SCM,AMOD
00600	
00700	  K←15↔J←14↔ M←2↔ R2←5↔ X←6↔ L←4↔ R←7↔ A←11↔RY←3↔RZ←13↔JJ2←12
00800		DEFINE FIXX(N)
00900	<	JUMPGE	N,.+5
01000		MOVNS	N
01100		FIX 	N,233000    
01200		MOVNS	N
01300		CAIA
01400		FIX	N,233000 >	; TO FIX IT LIKE 'IFIX' DOES.
01500	
01600	; 	SUBROUTINE GETPTS
01700	;	DIMENSION N(500),NP(500)
01800	;	COMMON/XRN/RN(4000)  /KJY/ K,J
01900	;	COMMON R2,JA,CENTR,J2,RJQ(18),RX6,JR,L,RDIS,VY,JQ(17)
02000	;	1/PTR/PWDS(250),ITEM,LL,I,IX
02100	;	EQUIVALENCE (R4,RJQ(2)),(R5,RJQ(3)),(R11,RJQ(9))
02200	;	1,(R6,RJQ(4)),(N,RN(2500)),(NP,RN(3000))
02300	
02400	GETPTS:	0		;CALL GETPTS(N)
02500		SETZ	J,	;	J=0
02600		SETZ	K,	;	K=0
02700		MOVE 	JJ2,POSI+=8
02800		MOVE	R2,.COMM.
02900	;;	SETZ	X,
03000		MOVE	X,@(16)
03100		SOS	X
03200		MOVEI	M,PTR	;	DO 1 M=1,ITEM
03300		ADDI	M,(X)
03400	G1:	AOJ	X,
03500		MOVE	L,(M)
03600	;;	FIXX(L)
03700		MOVEI	R,XRN(L)	;L=PWDS(M)
03800	;;	ADDI	R,(L)		;IF(RTLINE(L))GO TO 1
03900		MOVE	1,1(R)		;RN(L+2)
04000		CAML	R2,[=5.0]
04100		JRST	GZ
04200		CAME	R2,1	
04300		JRST 	GX
04400	GZ:	MOVE	A,.COMM.+7		;RY=RN(L+1)
04500		JUMPLE	A,G9			;F(R6.LE.0)GO TO 9
04600		CAME	A,(R)
04700		JRST	GX
04800	;  CHECK CODE NUM
04900	G9:	MOVE	A,2(R)		;IF(R6.NE.RY)GO TO 1
05000		CAMLE	A,.COMM.+6
05100		JRST	G2	;9	IF(OUTLIM(R4,R5,RN(L+3)))GO TO 2
05200		CAMGE	A,.COMM.+5	;R4
05300		JRST	G2
05400	
05500	;;	SKIPG	JJ2
05600		CAMLE JJ2,X
05700		MOVE	JJ2,X		;IF(M.LT.JJ2)JJ2=M
05800		AOJ	J,
05900	;  IN LIMITS?
06000		MOVEI	A,XRN+=2498(J)	;J=J+1
06100	;;	ADDI	A,(J)
06200		MOVEI	0,(L)
06300		AOJ	K,		;K=K+1
06400		MOVEI	1,XRN+=2998(K)
06500	;;	ADDI	1,(K)		;NP(K)=L
06600		MOVEM	0,(1)
06700		ADDI	0,3		;N(J)=L+3
06800	;;	MOVEM	0,(A)
06900		MOVEM	0,XRN+=2498(J)
07000	;  NP IS FOR USE IN JUSTIFY ROUTINE
07100	G2:	MOVE	RY,(R)	;2	IF(RY.LT.4)GO TO 1
07200		CAMGE	RY,[=4.0]
07300		JRST	GX
07400		CAMLE	RY,[=7.0]
07500		JRST	GX		;IF(RY.GT.7)GO TO 1
07600	;  TWO-ENDED ITEM?
07700		MOVE	RZ,-1(R)	;RZ=RN(L)
07800	;  WD CNT
07900	;;	CAMN	RY,[=4.0]	;GO TO(4,5,6,7),IFIX(RY)-3
08000	;;	JRST	G4
08100	;;	CAMN	RY,[=5.0]
08200	;;	JRST	G5
08300	;;	CAMN	RY,[=6.0]
08400	;;	JRST	G6
08500	;;	CAMG	RZ,[=4.0]	;4	IF(RZ.GT.2)GO TO 5
08600	;;	JRST	G5		; THERE IS A TRILL WIGGLE
08700	;;	JRST	GX		;GO TO 1   -- NO WIGGLE (P7≠0)
08800		FIXX(RY)
08900		XCT TBL-4(RY)	; NEXT REPLACES THE ABOVE.
09000		JRST G5
09100		JRST GX
09200	TBL:	JRST G4
09300		JRST G5
09400		JRST G6
09500		CAMG RZ,[4.0]
09600	
09700	G4:	CAMG	RZ,[=2.0]	;7	IF(RZ.GT.3)GO TO 5
09800		JRST	GX
09900		JRST	G5		;GO TO 1
10000	G6:	CAMGE	RZ,[=8.0]	;6	IF(RZ.LT.8)GO TO 8
10100		JRST	G8
10200	;;	MOVEI	1,XRN		;IF(RN(L+10).LT.30)GO TO 8
10300	;;	ADDI	1,(L)
10400	;;	MOVE	1,11(1)
10500		MOVE	1,=9(R)
10600		CAMGE	1,[=30.0]
10700		JRST	G8
10800		MOVE	A,7(R)	  ; IF(OUTLIM(R4,R5,RN(L+8)))GO TO 8
10900		CAMLE	A,.COMM.+6
11000		JRST	G8
11100		CAMGE	A,.COMM.+5
11200		JRST	G8
11300	;;	SKIPG	JJ2
11400		CAMLE JJ2,X
11500		MOVE	JJ2,X
11600		AOJ	J,
11700	;  IN LIMITS?
11800	;;	MOVEI	A,XRN+=2498(J)	;J=J+1
11900	;;	ADDI	A,(J)
12000		MOVEI	0,=8(L)		;J=J+1
12100	;;	ADDI	0,=8		;N(J)=L+8
12200	;;	MOVEM	0,(A)
12300		MOVEM 0,XRN+=2498(J)
12400	G8:	CAMGE	RZ,[=7.0]	;8	IF(RZ.LT.7)GO TO 5
12500		JRST 	G5
12600	;;	MOVE	A,6(R)		;IF(RN(L+7))GO TO G8B
12700	;;	JUMPL	A,G8B		; P7 IS NEG FOR TREMOLO
12800	;;	MOVE	A,7(R)		;IF(RN(L+8).NE.0)GO TO G8B
12900	;;	JUMPN	A,G8B
13000		SKIPL 6(R)
13100		SKIPE 7(R)
13200		JRST  G8B
13300	
13400		CAMGE	RZ,[=8.0]
13500		JRST	G5		;IF(RZ.LT.8)GO TO G5
13600		MOVE	A,=9(R)		;IF(RN(L+10).EQ.0)GO TO G5
13700		JUMPE	A,G5		;PASSES NUMBER OVER BEAM.
13800	G8B:	MOVE	A,8(R)
13900		CAMLE	A,.COMM.+6
14000		JRST	G5
14100		CAMGE	A,.COMM.+5	;R4
14200		JRST	G5
14300	
14400	;;	SKIPG	JJ2
14500		CAMLE JJ2,X
14600		MOVE	JJ2,X
14700		AOJ	J,		;J=J+1
14800	;  IN LIMITS?
14900	;;	MOVEI	A,XRN+=2498(J)	;J=J+1
15000	;;	ADDI	A,(J)
15100		MOVEI	0,=9(L)
15200	;;	ADDI	0,=9		;IF(OUTLIM(R4,R5,RN(L+9)))GO TO 5
15300	;;	MOVEM	0,(A)		;N(J)=L+9
15400		MOVEM 0,XRN+=2498(J)
15500	G5:	MOVE	A,5(R)
15600		CAMLE	A,.COMM.+6
15700		JRST	GX
15800		CAMGE	A,.COMM.+5	;R4
15900		JRST	GX
16000	
16100	;;	SKIPG	JJ2
16200		CAMLE JJ2,X
16300		MOVE	JJ2,X
16400		AOJ	J,
16500	;  IN LIMITS?
16600	;;	MOVEI	A,XRN+=2498(J)	;J=J+1
16700	;;	ADDI	A,(J)
16800		MOVEI	0,6(L)  ;5	IF(OUTLIM(R4,R5,RN(L+6)))GO TO 1
16900	;;	ADDI	0,6		;N(J)=L+6
17000	;;	MOVEM	0,(A)
17100		MOVEM 0,XRN+=2498(J)
17200	GX:	CAMGE	X,PTR+=250	;1	CONTINUE
17300		AOJA	M,G1
17400		MOVEM	JJ2,POSI+=8
17500		MOVEM	J,KJY+1
17600		MOVEM	K,KJY
17700		JRA	16,1(16)
17800	
17900	;	SUBROUTINE MOVIT
18000	;	DIMENSION N(500)
18100	;	COMMON/XRN/RN(4000)  /KJY/ DONT,J
18200	;	COMMON R2,JA,CENTR,J2,RJQ(18),RX6,JR,L,RDIS,VY,JQ(17)
18300	;	EQUIVALENCE (R4,RJQ(2)),(R5,RJQ(3)),(R9,RJQ(7))
18400	;	1,(R6,RJQ(4)),(N,RN(2500)),(R8,RJQ(6))
18500	MOVIT:	0		;RDIS=(R9-R8)/(R5-R4)
18600		MOVE	R,.COMM.+=10
18700		FSBR	R,.COMM.+=9
18800		MOVE	RY,.COMM.+6
18900		FSBR	RY,.COMM.+5
19000		FDVR	R,RY
19100		MOVEI	L,XRN+=2499	;	DO 1 K=1,J
19200		SETZ	K,
19300		MOVE	0,.COMM.+=10	; SET UP R9
19400	M1:	MOVE	X,L	       ;	L=N(K)
19500		MOVE	A,(X)
19600		MOVEI 	R2,XRN(A)	;RA=RN(L)
19700	;;	ADDI	R2,(A)
19800		MOVEI	RZ,(R2)
19900		MOVE	R2,-1(R2)
20000		CAMGE	R2,.COMM.+5	;IF(OUTLIM(R4,R5,RA))GO TO 1
20100		JRST 	MX
20200		CAMLE	R2,.COMM.+6
20300		JRST	MX
20400		JUMPE	0,M2	;IF(R9.NE.0)RA=(RA-R4)*RDIS
20500		FSBR	R2,.COMM.+5
20600		FMPR	R2,R 
20700	M2: 	FADR	R2,.COMM.+=9	;	RN(L)=R8+RA
20800		MOVEM	R2,-1(RZ)
20900	MX:	AOJ	K,		;1	CONTINUE
21000		CAMGE	K,KJY+1
21100		AOJA	L,M1
21200		JRA	16,(16)
21300	
21400	OUTLIM:	0	;	FUNCTION OUTLIM(I,J)
21500		SETO	0,	;	OUTLIM=-1
21600	;;	MOVE	4,.COMM.+5	;	IF(RN(I+J).LT.R4)RETURN
21700	;;	MOVEI	2,XRN
21800		MOVE	2,@(16)
21900		ADD	2,@1(16)
22000		MOVE 2,XRN-1(2)
22100	;;	CAMLE	4,-1(2)
22200		CAMGE 2,.COMM.+5
22300		JRA	16,2(16)
22400	;;	MOVE	5,.COMM.+6	;	IF(RN(I+J).GT.R5)RETURN
22500	;;	CAMGE	5,-1(2)
22600		CAMG 2,.COMM.+6
22700	;;	JRA	16,2(16)
22800		SETZ	0,		;	OUTLIM=0 
22900		JRA	16,2(16)
23000	
23100	
23200	;***** COPYIT
23300	;;	TITLE COPYIT
23400	;	SUBROUTINE COPYIT
23500	;	COMMON/XRN/RN(4000)  /KJY/ DONT,JY /POSI/S(8),JJ2,P
23600	;	COMMON R2,JA,CENTR,J2,RJQ(18),RX6,JR,L,RDIS,VY,JQ(17)
23700	;	1/PTR/PWDS(250),ITEM,LL,I,IX
23800	;	EQUIVALENCE (R4,RJQ(2)),(R5,RJQ(3)),(R7,RJQ(5))
23900	;	1,(R6,RJQ(4)),(N,RN(2500))
24000	STFCH:	0
24100		SETO 13,	;FLAG FOR STFCH ROUTINE
24200		JRST .+3
24300	
24400	COPYIT:	0
24500		SETZ 13,	;MAKE SURE IT'S 0
24600		SETZ 7,		;IM=ITEM
24700		MOVE 15,PTR+=250 	; AC7 IS K-1
24800		SOJ 15,		;(ITEM-1)
24900	CP1:	JSA 16,RTLINE	;DO 1 K=1,IM
25000		JUMP PTR(7)	;L=PWDS(K)
25100		JUMPL CPY	;	IF(RTLINE(L))GO TO 1
25200		JSA 16,OUTLIM	;IF(OUTLIM(L,3))GO TO 1
25300		JUMP PTR(7)
25400		JUMP [3]
25500		JUMPL CPY
25600		MOVE 11,PTR(7)	; NOW L IS AC11
25700		MOVE 10,.COMM.+7 ;IF(R6.NE.0.AND.R6.NE.RN(L+1))GO TO 1
25800		JUMPE 10,CP3
25900		CAME 10,XRN(11)
26000		JRST CPY
26100	CP3:	JUMPL 13,STF2	; SKIP OVER FOR STFCH ROUTINE
26200		MOVE 12,XRN-1(11)
26300		FIXX(12)	;M=RN(L)+2
26400		ADDI 12,2
26500		JSA 16,LOOP	;CALL LOOP(0,M,1,I,L,RN)
26600		JUMP [0]
26700		JUMP 12
26800		JUMP [1]
26900		JUMP PTR+=252
27000		JUMP 11
27100		JUMP XRN
27200		AOS PTR+=250	;ITEM=ITEM+1
27300		MOVE 13,PTR+=250
27400		MOVE 11,PTR-1(13)	;L=PWDS(ITEM)
27500	STF2:	MOVE 14,.COMM.+=8	;RN(L+2)=R7
27600		MOVEM 14,XRN+1(11)
27700		JUMPGE 13,CP2
27800	;;	SKIPL POSI+=8	;THIS FOR STFCH
27900		MOVE 0,7
28000		AOJ
28100		CAMGE POSI+=8
28200		MOVEM POSI+=8	; IF(K.LT.JJ2)JJ2=K
28300		JRST CPY
28400	;;	MOVE 14,7
28500	;;	AOJ 14,
28600	;;	MOVEM 14,POSI+=8
28700	;;	JRST CPY
28800	;;CP2:	SKIPGE POSI+=8	;IF(JJ2)JJ2=ITEM
28900	CP2:	CAMGE 13,POSI+=8	;IF(ITEM.LT.JJ2)JJ2=ITEM
29000		MOVEM 13,POSI+=8
29100		AOJ 12,	;I=I+M+1
29200		ADD 12,PTR+=252
29300		MOVEM 12,PTR+=252
29400		MOVEM 12,PTR(13)	;PWDS(ITEM+1)=I
29500	CPY:	CAMGE 7,15	;1 CONTINUE
29600		AOJA 7,CP1
29700	;;	JRST CP1
29800		JUMPL 13,.+3
29900		MOVE 7,.COMM.+=8	;R2=R7
30000		MOVEM 7,.COMM.		;DOES THIS MATTER FOR STFCH⎇
30100		JRA 16,(16)	;END
30200	
30300		;SUBROUTINE STFCH
30400		;INTEGER PWDS
30500		;COMMON/XRN/RN(4000)  /KJY/ DONT,JY /POSI/S(8),JJ2,P
30600		;COMMON R2,JA,CENTR,J2,RJQ(18),RX6,JR,L,RDIS,VY,JQ(17)
30700		;1/PTR/PWDS(250),ITEM,LL,I,IX
30800		;EQUIVALENCE (R7,RJQ(5)),(R6,RJQ(4))
30900		;DO 1 K=1,ITEM
31000		;L=PWDS(K)
31100		;IF(RTLINE(L))GO TO 1
31200		;IF(OUTLIM(L,3))GO TO 1
31300		;IF(RN(L+1).NE.R6.AND.R6.NE.0)GO TO 1
31400	;C DIDN'T MATCH THE CODE NUM.
31500		;IF(JJ2)JJ2=K
31600		;RN(L+2)=R7
31700	;1	CONTINUE
31800		;END
31900	
32000	UPDN: 	0	;SUBROUTINE UPDN(NST)
32100		;INTEGER PWDS
32200		;COMMON/XRN/RN(4000)  /KJY/ DONT,JY /POSI/S(8),JJ2,P
32300		;COMMON R2,JA,CENTR,J2,RJQ(18),RX6,JR,L,RDIS,VY,JQ(17)
32400		;1/PTR/PWDS(250),ITEM,LL,I,IX
32500	        MOVE 7,@(16)	;EQUIVALENCE (R4,RJQ(2)),(R5,RJQ(3)),(R11,RJQ(9))
32600		SOJ 7,		;1,(R6,RJQ(4))
32700		MOVE 15,PTR+=250 	; AC7 IS K-1
32800		SOJ 15,		;(ITEM-1)
32900	UPDN0:	JSA 16,RTLINE	;DO 1 K=NST,ITEM
33000		JUMP PTR(7)	;L=PWDS(K)
33100		JUMPL UPDN1	;	IF(RTLINE(L))GO TO 1
33200		MOVE 11,PTR(7)	;RY=RN(L+1) -- 11 IS L
33300		MOVE 12,XRN(11)	;IF(RY.GT.16)GO TO 1
33400		CAMG 12,[16.0]	; AC12=RY
33500		CAME 12,[8.0]		;IF(RY.EQ.8)GO TO 1
33600		CAMN 12,[3.0]		;IF(RY.EQ.3)GO TO 1
33700		JRST UPDN1
33800		CAMN 12,.COMM.+7	;IF(RY.EQ.R6)GO TO 10
33900		JRST UPDN10
34000		SKIPE .COMM.+7		;IF(R6.NE.0)GO TO 1
34100		JRST UPDN1
34200	UPDN10:	CAME 12,[4.0]	; DIDN'T MATCH THE CODE NUM.
34300		JRST UPDN11	;10	;IF(RY.NE.4)GO TO 11
34400		MOVE 2,XRN-1(11)	;IF(RN(L).LT.3)GO TO 1
34500		CAMGE 2,[3.0]
34600		JRST UPDN1	; A BAR LINE
34700	UPDN11:	JSA 16,OUTLIM	;11	IF(OUTLIM(L,3))GO TO 2
34800		JUMP PTR(7)
34900		JUMP [3]
35000		JUMPL UPDN2
35100		MOVE 2,.COMM.+=12	;RN(L+4)=RN(L+4)+R11
35200		FADRM 2,XRN+3(11)
35300	;;	SKIPL POSI+=8		;IF(JJ2)JJ2=K
35400		MOVE 0,7
35500		AOJ
35600		CAMGE POSI+=8
35700		MOVEM POSI+=8		;IF(K.LT.JJ2)JJ2=K
35800	;;	JRST UPDN2
35900	;;	MOVE 2,7
36000	;;	AOJ 2,
36100	;;	MOVEM 2,POSI+=8
36200	UPDN2:	CAML 12,[4.0]	;2	;IF(RY.LT.4)GO TO 1
36300		CAML 12,[7.0]	;IF(RY.GE.7)GO TO 1
36400		JRST UPDN1	; NO WIGGLE ON TRILL
36500		CAME 12,[4.0]	;IF(RY.NE.4.)GO TO 12
36600		JRST UPDN12
36700		MOVE XRN+4(11)	;IF(RN(L+5).EQ.50)GO TO 1
36800		CAMN [50.0]		;AC0 IS RN(L+5)
36900		JRST UPDN1	; CRESC. OR BOX
37000	UPDN12:	JSA 16,OUTLIM	;12	;IF(OUTLIM(L,6))GO TO 1
37100		JUMP PTR(7)
37200		JUMP [6]
37300		JUMPL UPDN1
37400		MOVE 3,.COMM.+=12	;RN(L+5)=RN(L+5)+R11
37500		FADRM 3,XRN+4(11)
37600	;;	SKIPL POSI+=8		;IF(JJ2)JJ2=K
37700		MOVE 0,7
37800		AOJ
37900		CAMGE POSI+=8
38000		MOVEM POSI+=8		;IF(K.LT.JJ2)JJ2=K
38100	;;	JRST UPDN1
38200	;;	MOVE 2,7
38300	;;	AOJ 2,
38400	;;	MOVEM 2,POSI+=8
38500	UPDN1:	CAMGE 7,15		;1	;CONTINUE
38600		AOJA 7,UPDN0
38700		JRA 16,1(16)	;END
38800	
38900		;SUBROUTINE DELETE
39000		;IMPLICIT INTEGER(A-Q,S-Z)
39100		;COMMON/DL/X22,SAVER,NAME
39200		;COMMON /XRN/RN(4000)
39300		;COMMON R2,JA,CENTR,J2,RJQ(20),JQ(15),R6,DEL,X,JY,K
39400		;COMMON/PTR/PWDS(250),ITEM,L,I,IX
39500		;COMMON/DPY/ST(4000),WDS(250),MEDIT,IGO
39600	DELETE:	0	;EQUIVALENCE (ST2,ST(2))
39700		MOVE 15,PTR+=252
39800		MOVEM 15,PTR+=253
39900		MOVE 12,DPY+=4250	;171	IX=I   15 IS IX
40000		MOVE 14,XRN-1(12)	;L=RN(MEDIT)+3.0
40100		FADR 14,[3.0]
40200		FIXX(14)	;AC14 IS L
40300	;  SIZE OF DELETION
40400		SUB 15,14	;I=IX-L
40500		MOVEM 15,PTR+=252
40600		JSA 16,LOOP	;CALL LOOP(MEDIT,I,1,0,L,RN)
40700		JUMP DPY+=4250
40800		JUMP PTR+=252
40900		JUMP [1]
41000		JUMP [0]
41100		JUMP 14 
41200		JUMP XRN
41300		MOVE 7,DL	;JY=WDS(X22+1)-WDS(X22)
41400		MOVE 13,DPY+=4000(7)
41500		SUB 13,DPY+=3999(7)	;JY IS 13, X22 IS 7
41600		MOVEI 10,2
41700		ADD 10,DPY+=3999(7)	;WDS(X22)+2
41800		MOVE 15,PTR+=250	;15 IS ITEM  (X)
41900		JSA 16,LOOP	;CALL LOOP(WDS(X22)+2,WDS(X),1,0,JY,ST)
42000		JUMP 10
42100		JUMP DPY+=3999(15)
42200		JUMP [1]
42300		JUMP [0]
42400		JUMP 13 
42500		JUMP DPY
42600		MOVE 12,7	;K=X22
42700	DELE:	MOVE 11,12	;194	 N=K+1
42800		AOJ 11,		;N IS 11   K IS 12
42900		MOVE 2,DPY+=4000(11)	;WDS(N)=WDS(N+1)-JY
43000		SUB 2,13
43100		MOVEM 2,DPY+=3999(11)
43200		MOVE 2,PTR-1(11)	;PWDS(K)=PWDS(N)-L
43300		SUB 2,14
43400		MOVEM 2,PTR-1(12)
43500		MOVE 12,11	;K=N
43600		CAMGE 12,15	;IF(K.LT.X)GO TO 194
43700		JRST DELE	;  ABOVE RESHUFFLES POINTER ARRAYS. X=ITEM+1
43800		SOS PTR+=250	;ITEM=ITEM-1
43900		MOVE 2,PTR+=250
44000		CAMLE 7,PTR+=250	;IF(X22.GT.ITEM)X22=ITEM
44100		MOVEM 2,DL
44200		MOVEM 2,.COMM.+2	;J2=ITEM
44300		SOS PTR+=250	;ITEM=ITEM-1
44400		MOVE 2,DPY+=3999(2)	;ST2=WDS(J2)
44500		MOVEM 2,DPY+1
44600		JSA 16,DPYNEW		;271	CALL DPYNEW
44700		JRA 16,(16)
44800	
44900	NOIR:	0
45000		JRA 16,1(16)	; DUMMY ******
45100	
45200	SLEND:	0	;	SUBROUTINE SLEND
45300		MOVE 8,[8.0]	;INTEGER PWDS
45400		MOVE 7,SCM+=80	;C  TO FIND END POINTS OF STAVES
45500		MOVE 4,[4.0];COMMON/XRN/RN(2000),IT,POS,RA,NN,JB,RB,A,B,JMP,JK,C,
45600	;	1 DMAX,UMAX,AA,JMAX,X,Y,BB,RNX(1982)
45700	; 1/SCM/V(78),I,LCNT,STAFF,LIST(200),REND/PTR/PWDS(250),ITEM,LL,IS,IX
45800		SETZ 5,		;DO 1 K=1,ITEM
45900	SLN1:	MOVE 6,PTR(5)	;L=PWDS(K)
46000				;IF(RN(L+1).NE.8)GO TO 1
46100		CAME 8,XRN(6)	;C  FOUND A STAFF
46200		JRST SLN1X	;IF(RN(L+2).NE.STAFF)GO TO 1
46300		CAME 7,XRN+1(6)	;C GOT THE RIGHT ONE
46400		JRST SLN1X	;IF(IT)GO TO 2
46500		SKIPGE XRN+=2000	;POS=202
46600		JRST SLN2	;C NOW CHECK LEFT SIDE OF STAFF
46700		MOVE 15,[202.0]		;IF(RN(L).LT.4)RETURN
46800		CAML 4,XRN-1(6)	;P6 WASN'T MENTIONED - SO IT =200
46900		JRST SLN3
47000				;POS=RN(L+6)+2
47100		MOVE 15,XRN+5(6)	;IF(POS.EQ.2)POS=202
47200		FADR 15,[2.0]	;RETURN
47300		CAMN 15,[2.0]	;2 	POS=RN(L+3)-2.3
47400		MOVE 15,[202.0]		;RETURN
47500		JRST SLN3	;1	CONTINUE
47600	SLN2:	MOVE 15,XRN+2(6)	;END
47700		FSBR 15,[2.3]
47800	SLN3:	MOVEM 15,XRN+=2001
47900		JRA 16,(16)
48000	SLN1X:	AOS 5
48100		CAMGE 5,PTR+=250
48200		JRST SLN1
48300		JRA 16,(16)
48400	
48500	POSIT:	0	;	FUNCTION POSIT(V)
48600		MOVE 15,@(16)	;	COMMON/XRN/RN(4000)
48700		SKIPGE 15	;	DIMENSION POSNT(0/82)
48800		MOVNS 15	;	EQUIVALENCE (POSNT,RN(3801))
48900		MOVE 14,15	;	1,(A,RN(3884)),(K,RN(3885))
49000		FIXX(14)	;	IF(V)V=-V
49100	;  REREAD OR SOMETHING MAKES /1 C- 2/ GIVE A -2 FOR LAST NUM.!!!???
49200		JSA 16,AMOD	;	K=V
49300		JUMP 15		;	A=POSNT(K)
49400		JUMP [1.0]	;POSIT=A+(POSNT(K+1)-A)*AMOD(V,1.0)
49500	; TYPE  /2.3 -- FOR POSITION BETWEEN NTS 2 AND 3. ETC.
49600		MOVE 2,XRN+=3801(14)	;	END
49700		FSBR 2,XRN+=3800(14)
49800		FMPR 0,2
49900		FADR 0,XRN+=3800(14)
50000		JRA 16,1(16)
50100		END